import 'dart:async';

import 'package:flutter/material.dart';


/*
* 屏蔽快速点击事件 默认1秒之内允许点击一次
*
* 使用
* 不带参数事件
onTap: CommonUtils.debounce(_showDevices)
* 、//带参数的 并在点击事件里面取消输入框获取焦点事件
* CommonUtils.debounce((){
         }),
*
* */
class CommonUtils{
  static Function debounce(Function fn, [int t = 200]) {
    // FocusManager.instance.primaryFocus?.unfocus();
    Timer _debounce;
    return () {
      // 还在时间之内，抛弃上一次
      if (_debounce?.isActive ?? false) {
        _debounce?.cancel();
      }else{
        fn();
      }
      _debounce = Timer(Duration(milliseconds: t), () {
        _debounce?.cancel();
        _debounce = null;
      });
    };
  }
}